COURSE OUTLINE
Instructor: Kenneth L Moore Semester/Session: Fall 2007
Course Number: CIT111
Course
Title: Introduction to
Programming: Java
Course
Credits: 4
Lecture
hours: 4 Lab hours: 0 Other hours: 0
Pre-requisite(s): Basic skills using a personal computer and operating system;
high
school Algebra; and eligibility for DVS101 and ENG100.
Co-requisite(s): None
Course Description:
This
course is an introduction to program design, analysis, and programming
fundamentals using the Java language.
Topics include the software development process, problem solving
techniques, simple language basics, data representation and storage, program
control structures, objects and classes, event handling, arrays, HTML and
applets.
Learning
Outcomes:
Upon the completion of the activities in this course, the
student should be able to:
·
Demonstrate
an understanding of the Java program development environment
·
Use
the Java programming language to design and implement programs, both applications
and applets, on a computer to solve problems
·
Demonstrate
an understanding of basic problem-solving techniques (problem specifications,
pseudo code, and incremental development/testing) and apply them to novel
situations that are relatively similar to models introduced in the course.
·
Demonstrate
an understanding of data storage and memory concepts
·
Demonstrate
an understanding and use of primitive data types and object reference types
·
Demonstrate
an understanding and use of variables, arithmetic and Boolean expressions, and
assignment operators
·
Demonstrate
an understanding of the logical structures of sequence, repetition, and
selection
·
Apply
the Java language to implement the logical structures of sequence, repetition,
and selection
·
Demonstrate
an understanding and use of a subset of standard predefined methods and classes
contained in the Java API library
·
Use
a browser to examine online Java library documentation
·
Create
and apply simple graphical user interfaces (GUI) using Swing GUI components
·
Demonstrate
an understanding and apply mechanisms to pass data between methods
·
Demonstrate
an understanding of object-based programming
·
Apply
Java language elements to create new classes, user-defined methods, and objects
·
Demonstrate
an understanding of the array data structure and apply array processing methods
in computer programs
·
Demonstrate
an understanding and use of HTML to create simple personal Web pages
containing, text, images, hyperlinks and applets
·
Apply
appropriate programming terminology
·
Demonstrate
an understanding of clear and effective programming by using correct
programming style and providing appropriate documentation
Section Dates Days Time Room
Class
Section(s) Time & Location: BC02 5/21 – 7/27 MW
10-11:40 587
Instructor: |
Kenneth
L Moore |
Office Hours: |
Before
and after class |
|
|
Office: |
Boyce Campus: N457 |
E-Mail Address: |
kmoore@ccac.edu
- best instructor contact method |
Materials and Resources:
Required Text(s): |
A Guide To Programming In JAVA, Lawrenceville Press, ISBN 1-58003-121-8 |
Required Materials: |
To develop Java programs, students
need a “relatively recent” PC and 2 software programs ( both
free ). |
Teaching Methods:
Lecture, homework,
in class programming.
Preparation
Time:
Expect
to spend 8 hours a week outside of class for preparation and homework.
Evaluation Plan:
Students
are evaluated on the results obtained
from doing homework assignment, short
quizzes and 2 major exams. Students typically take the 2 proctored exams at CCAC’s testing sites.
Quizzes are accessible from home and immediate feedback is provided.
Specific assessment items are:
2 Exams (Mid-Term and
Final) - ( 70% )
Weekly homework (20%)
Quizzes (10%)
Final Grade Breakdown: A: 90 - 100%, B: 80 - 89%, C: 70 - 79%, D: 60 - 69%, F: 0-59%
Instructors Statement: A recent
survey of employment in software engineering has shown 142,000 new jobs next
year. There will be 39,000 new graduates
to fill these positions. In addition,
1/3 of the current software workforce will be retiring in the next 5 years (the
baby boomers).
Your
participation in a CMU research project will be required this semester. It consists of filling out two 10 min
surveys.
http://www.surveymonkey.com/s.aspx?sm=POOWkmP22bviC8h0LL6Ltg_3d_3d
- pre-survey
http://www.surveymonkey.com/s.aspx?sm=l8VK4KYmyrkZBCDl11K7ww_3d_3d
- post survey
Other Policies and Procedures:
Plagiarism and Cheating
Each student must independently complete all assignments. It is ok to discuss assignments with another
student or a tutor, but the submitted work should be your own. If there is any
reason to suspect that several people collaborated on an individual assignment,
all involved will receive an F for the semester. If you have trouble with an
assignment, you may ask for advice from the instructor, from a tutor, or from a
friend. However, you are expected to do your own typing and create your own
document. Any form of cheating on an exam or quiz will result in an F for the
semester. Please read the school’s policy on cheating in your CCAC Student
Handbook.
Students with Disabilities:
The Community College of Allegheny County makes
every effort to provide reasonable accommodations for students with
disabilities. Questions about services
and procedures for students with disabilities should be directed to the Office
of Supportive Services at your campus.
Outline:
Unit |
Topic and |
Assessments |
Resources |
Unit 1 Aug 20 |
An
Introduction to Computers Applets
and Web Programming · Computer hardware, input devices, peripheral devices, output
devices (p 1-2) · Operating systems (p 2-4) · Programming languages (p 5-6) · Networks (p 6-9) · Number systems (p 9-10) · Storing data in memory (p 10-11) · Files and storage devices (p 11-12) · Telecommunications (p 14) · Internet (p 15-18) · Privacy issues (p 18-20) · Protecting software and data (p 21) · Social and ethical implications of computer use (p 22) · World Wide Web terminology (p 35) · Impact of programming on the WWW community (p 35-36) · HTML (p 36-37, 45-48) · JavaScript (38-41) · Java applets (p 41-42) · HTML style sheets (p 49-50) |
· None |
· Text pages 1-34 (Chapter 1) · Text pages 35-58 (Chapter 2) |
Unit 2 Aug 27 |
Introducing
Java · Introduce object-oriented concepts (p 59) · Objects, classes, and packages (p 59-60) · Creating and executing a Java application (p 60-61) · Console output (System.out.print/println)
(p 63-64) · Code conventions (p 65) · Algorithm design (p 66) |
· |
· Text pages 59-76 (Chapter 3) |
Unit 3 Sep 3 |
Variables
and Constants · Primitive types vs. objects (p 79-80) · Variable declarations (p 77-80) · Classes (abstract data type) (p 80) · Constant declarations (p 87) · Simple data types (int, boolean, double) (p 77-79) · Java packages (p 80-81) · Obtain a value from the user (p 81-82) · Numeric expressions (p 83) · Type-casting (p 84) · Syntax, run-time, and logic errors (exceptions) (p 88-89) · Read and understand a problem description, purpose, and goals (p
90-93) |
· |
· Text pages 77-104 (Chapter 4) |
Unit 4 Sep 10 |
Conditional
Control Structures · Conditional control structures (if, switch) (p 105-108) · Generating random numbers (Math.random())
(p 109-111) · Logical operators (p 111-112) · The Math class (Math.abs(), Math.pow(), Math.sqrt()) (p
113) |
|
· Text pages 105-130 (Chapter 5) |
Unit 5 Sep 24 |
· Iteration (while, for) (p 131, 135) · Counters and accumulators (p 133) · Debugging techniques including using a debugger, adding extra
output statements, and hand-tracing code (p 136-137) · The String class (p 138-141) |
|
· Text pages 131-156 (Chapter 6) |
Week 8 Oct 8 |
Review
Chapters 1 through 6 |
· Midterm Examination |
|
Unit 6 Oct 15 Oct 22 |
Methods · Methods (p 157-160) · Top-down development (p 157) · Procedural abstraction (p 157) · Method declarations (p 159-160) · Parameter declarations (p 160-161) · Pre- and post-conditions (p 164-165) · Identify boundary cases and generate appropriate test data (p
168) |
· |
· Text pages 157-178 (Chapter 7) |
Unit 7 Oct 29 |
Classes
and Object-Oriented Programming · Data abstraction and encapsulation (p 179-182) · Design and implement a class (p 180-182) · Functional decomposition (p 180) · Encapsulation and information hiding (p 182) · The Object class (p 185-186) · Inheritance (p 186-187) · The has-a class relationship (p 187) · Object-oriented development (p 191-192) |
|
· Text pages 179-210 (Chapter 8) |
Unit 8 Nov 5 Nov 12 |
Arrays · One-dimensional arrays (p 237-238) · Traversing an array (p 238, 251) · Array element insertions and deletions (p 238, 265, 250-251) · Arrays with meaningful indexes (p 238-239) · Sequential search (p 244) · Two-dimensional arrays (p 245-249) · The ArrayList class (p 250-251) · Wrapper classes (p 251-253) · Autoboxing and auto-unboxing (p 253) |
|
· Text pages 237-272 (Chapter 10) |
Unit 9 Nov 26 Dec 3 |
GUIs
and Event-Driven Programming · Graphical user interfaces (p 273) · The Swing Package (p 273) · Event-driven applications (p 273-277) · GUI layout and controls (p 279-292) · Nested classes (p 293) |
|
· Text pages 273-308 (Chapter 11) |
Week 16 Dec 10 |
Review
chapters covered throughout the semester |
· Final Examination |
|
Note that this schedule may be modified based on class
progress.